package com.admin.education.services.Interfaces;

import com.admin.education.common.exceptions.ResourceNotFoundException;
import com.admin.education.dataTransferObject.PageRequest;
import com.admin.education.dataTransferObject.PageResponse;
import com.admin.education.dataTransferObject.ServicesExcuteResult;
import com.admin.education.dataTransferObject.categorys.CategoryTemplateTransfer;
import com.admin.education.dataTransferObject.categorys.CategorysTransfer;
import com.admin.education.dataTransferObject.categorys.Request.CreateCategoryRequest;
import com.admin.education.dataTransferObject.categorys.Request.UpdateCategoryRequest;

import javax.validation.Valid;
import java.util.List;

public interface ICategoryService {
    ServicesExcuteResult<List<CategorysTransfer>> getCategorys();
    ServicesExcuteResult<List<CategoryTemplateTransfer>> getTemplates(long id);
    ServicesExcuteResult<PageResponse<CategorysTransfer>> queryCategorys(@Valid PageRequest pageRequest);
    ServicesExcuteResult createCategory(@Valid CreateCategoryRequest createCategoryRequest);
    ServicesExcuteResult updateCategory(long categoryId, @Valid UpdateCategoryRequest updateCategoryRequest) throws ResourceNotFoundException;
    ServicesExcuteResult setValid(long category) throws ResourceNotFoundException;
    ServicesExcuteResult<CategorysTransfer> queryCategoryById(long categoryId) throws ResourceNotFoundException;
}
